<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://schemas.microsoft.com/telco/2011/09/" elementFormDefault="qualified" targetNamespace="http://schemas.microsoft.com/telco/2011/09/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:import schemaLocation="http://localhost:64683/GatewayService.svc?xsd=xsd2" namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
  <xs:import schemaLocation="http://localhost:64683/GatewayService.svc?xsd=xsd1" namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
  <xs:import schemaLocation="http://localhost:64683/GatewayService.svc?xsd=xsd3" namespace="http://schemas.datacontract.org/2004/07/Microsoft.Telco.Web.Contracts" />
  <xs:element name="SendSMS">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="userId" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="originAddress" nillable="true" type="xs:string" />
        <xs:element xmlns:q1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="destinationAdresses" nillable="true" type="q1:ArrayOfstring" />
        <xs:element minOccurs="0" name="message" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SendSMSResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="SendSMSResult" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="AuthenticationFault">
    <xs:sequence>
      <xs:element minOccurs="0" name="ConsentUrl" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="System" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="AuthenticationFault" nillable="true" type="tns:AuthenticationFault" />
  <xs:complexType name="TelcoFault">
    <xs:sequence>
      <xs:element minOccurs="0" name="Code" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="Message" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="TelcoFault" nillable="true" type="tns:TelcoFault" />
  <xs:element name="GetSMSStatus">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="userId" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="messageId" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetSMSStatusResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetSMSStatusResult" nillable="true" type="tns:ArrayOfMessageStatus" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="ArrayOfMessageStatus">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="MessageStatus" nillable="true" type="tns:MessageStatus" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfMessageStatus" nillable="true" type="tns:ArrayOfMessageStatus" />
  <xs:complexType name="MessageStatus">
    <xs:sequence>
      <xs:element minOccurs="0" name="Address" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="DeliveryStatus" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="Description" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="MessageId" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="MessageStatus" nillable="true" type="tns:MessageStatus" />
  <xs:element name="GetSMSMessages">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="userId" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetSMSMessagesResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetSMSMessagesResult" nillable="true" type="tns:ArrayOfShortMessage" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="ArrayOfShortMessage">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="ShortMessage" nillable="true" type="tns:ShortMessage" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfShortMessage" nillable="true" type="tns:ArrayOfShortMessage" />
  <xs:complexType name="ShortMessage">
    <xs:sequence>
      <xs:element minOccurs="0" name="Destination" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="Message" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="Origin" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="Received" type="xs:dateTime" />
      <xs:element minOccurs="0" name="Sent" type="xs:dateTime" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ShortMessage" nillable="true" type="tns:ShortMessage" />
  <xs:element name="SendMMS">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="userId" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="originationAddress" nillable="true" type="xs:string" />
        <xs:element xmlns:q2="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="destinationAddresses" nillable="true" type="q2:ArrayOfstring" />
        <xs:element minOccurs="0" name="messageParts" nillable="true" type="tns:ArrayOfMultimediaMessage" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="ArrayOfMultimediaMessage">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="MultimediaMessage" nillable="true" type="tns:MultimediaMessage" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfMultimediaMessage" nillable="true" type="tns:ArrayOfMultimediaMessage" />
  <xs:complexType name="MultimediaMessage">
    <xs:sequence>
      <xs:element minOccurs="0" name="Content" nillable="true" type="xs:base64Binary" />
      <xs:element minOccurs="0" name="ContentId" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="EncodingType" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="From" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="MimeType" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="Received" type="xs:dateTime" />
      <xs:element minOccurs="0" name="Sent" type="xs:dateTime" />
      <xs:element minOccurs="0" name="To" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="MultimediaMessage" nillable="true" type="tns:MultimediaMessage" />
  <xs:element name="SendMMSResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="SendMMSResult" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetMMSStatus">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="userId" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="messageId" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetMMSStatusResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetMMSStatusResult" nillable="true" type="tns:ArrayOfMessageStatus" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetMMSMessages">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="userId" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetMMSMessagesResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetMMSMessagesResult" nillable="true" type="tns:ArrayOfMultimediaMessage" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetAdvertisement">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="request" nillable="true" type="tns:AdvertisementRequest" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="AdvertisementRequest">
    <xs:sequence>
      <xs:element minOccurs="0" name="AdProtectionPolicy" type="tns:AdProtectionPolicy" />
      <xs:element minOccurs="0" name="AdType" type="tns:AdType" />
      <xs:element minOccurs="0" name="Keywords" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="UserAgent" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="AdvertisementRequest" nillable="true" type="tns:AdvertisementRequest" />
  <xs:simpleType name="AdProtectionPolicy">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Low">
        <xs:annotation>
          <xs:appinfo>
            <EnumerationValue xmlns="http://schemas.microsoft.com/2003/10/Serialization/">1</EnumerationValue>
          </xs:appinfo>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Safe">
        <xs:annotation>
          <xs:appinfo>
            <EnumerationValue xmlns="http://schemas.microsoft.com/2003/10/Serialization/">2</EnumerationValue>
          </xs:appinfo>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="None">
        <xs:annotation>
          <xs:appinfo>
            <EnumerationValue xmlns="http://schemas.microsoft.com/2003/10/Serialization/">3</EnumerationValue>
          </xs:appinfo>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:element name="AdProtectionPolicy" nillable="true" type="tns:AdProtectionPolicy" />
  <xs:simpleType name="AdType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Text">
        <xs:annotation>
          <xs:appinfo>
            <EnumerationValue xmlns="http://schemas.microsoft.com/2003/10/Serialization/">1</EnumerationValue>
          </xs:appinfo>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Image">
        <xs:annotation>
          <xs:appinfo>
            <EnumerationValue xmlns="http://schemas.microsoft.com/2003/10/Serialization/">2</EnumerationValue>
          </xs:appinfo>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:element name="AdType" nillable="true" type="tns:AdType" />
  <xs:element name="GetAdvertisementResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetAdvertisementResult" nillable="true" type="tns:Advertisement" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="Advertisement">
    <xs:sequence>
      <xs:element minOccurs="0" name="AdType" type="tns:AdType" />
      <xs:element minOccurs="0" name="ImageUrl" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="NavigateUrl" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="Text" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="Advertisement" nillable="true" type="tns:Advertisement" />
  <xs:element name="GetContacts">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="GetContactsResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q3="http://schemas.datacontract.org/2004/07/Microsoft.Telco.Web.Contracts" minOccurs="0" name="GetContactsResult" nillable="true" type="q3:ArrayOfLiveContact" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="LivePresenceStatus">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Online" />
      <xs:enumeration value="Away" />
      <xs:enumeration value="Idle" />
      <xs:enumeration value="BeRightBack" />
      <xs:enumeration value="Busy" />
      <xs:enumeration value="OutToLunch" />
      <xs:enumeration value="OnThePhone" />
      <xs:enumeration value="Offline" />
      <xs:enumeration value="Unknown" />
    </xs:restriction>
  </xs:simpleType>
  <xs:element name="LivePresenceStatus" nillable="true" type="tns:LivePresenceStatus" />
  <xs:element name="ConvertTextToSpeech">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="text" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ConvertTextToSpeechResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q4="http://schemas.datacontract.org/2004/07/Microsoft.Telco.Web.Contracts" minOccurs="0" name="ConvertTextToSpeechResult" nillable="true" type="q4:Attachment" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="TranscribeVoice">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q5="http://schemas.datacontract.org/2004/07/Microsoft.Telco.Web.Contracts" minOccurs="0" name="attachment" nillable="true" type="q5:Attachment" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="TranscribeVoiceResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="TranscribeVoiceResult" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="CreateClickToCall">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="userId" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="origin" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="destination" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="connectionText" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="CreateClickToCallResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="CreateClickToCallResult" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>